#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
class dpq{
  private:
    priority_queue<int,vector<int>,greater<> > q1,q2;
  public:
    inline void add(int u){
      q1.emplace(u);
    }
    inline void del(int u){
      q2.emplace(u);
    }
    inline int top(){
      while(!q2.empty()&&q1.top()==q2.top())
        q1.pop(),q2.pop();
      return q1.top();
    }
};
inline void chmin(int &x,int y){if(y<x)x=y;}
int main(){
  freopen("min.in","r",stdin);
  freopen("min.out","w",stdout);
  ios::sync_with_stdio(false);
  cin.tie(0); cout.tie(0);
  int n; bool A=true,B=true; cin>>n;
  vector<int> a(n),b(n),r(n,2e9);
  for(auto &i:a)cin>>i;
  for(auto &i:b)cin>>i,A&=i==1,B&=i==(int)1e9;
  if(n<=1000){
    for(int k=1;k<=n;k++){
      dpq q1,q2;
      for(int i=0;i<n;i++){
        q1.add(a[i]),q2.add(b[i]);
        if(i>=k-1){
          r[k-1]=min(r[k-1],abs(q1.top()-q2.top()));
          q1.del(a[i-k+1]),q2.del(b[i-k+1]);
        }
      }
    }
  }
  else if(A){
    fill(r.begin(),r.end(),*min_element(a.begin(),a.end())-1);
  }
  else if(B){
    vector<int> p(n);
    iota(p.begin(),p.end(),0);
    sort(p.begin(),p.end(),[&](int x,int y){
      return a[x]>a[y];
    });
    set<pii> s;
    for(int i:p){
      int L=i,R=i;
      auto w=s.upper_bound(make_pair(i,0));
      if(w!=s.end()&&w->first==i+1)R=w->second,s.erase(w);
      w=s.upper_bound(make_pair(i,0));
      if(w!=s.begin()&&(--w)->second==i-1)L=w->first,s.erase(w);
      s.emplace(L,R),r[R-L]=min(r[R-L],(int)(1e9)-a[i]);
    }
    for(int i=n-1;i;i--)
      r[i-1]=min(r[i-1],r[i]);
  }
  else{
    for(int i=0;i<n;i++)
      for(int j=i,x=1e9,y=1e9;j<n;j++)
        chmin(x,a[j]),chmin(y,b[j]),chmin(r[j-i],abs(x-y));
  }
  for(int i:r)cout<<i<<'\n';
  return 0;
}